]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
ScreenShield: clear the lock screen early when deactivating
authorGiovanni Campagna <gcampagna@src.gnome.org>
Sun, 12 May 2013 17:41:21 +0000 (19:41 +0200)
committerGiovanni Campagna <gcampagna@src.gnome.org>
Sun, 12 May 2013 18:19:06 +0000 (20:19 +0200)
Upon popMode, MessageTray will try readding all notifications
to their rightful parent, so we must tell NotificationBox to
relinquish them before st_bin_set_child() fails (leaving a dangling
child pointer and crashing at the next allocation)

https://bugzilla.gnome.org/show_bug.cgi?id=698812

js/ui/screenShield.js

index d7e020b3191e9017f698c61d6e313517b667ffa9..5b3ed953872ab7e0ed2982933e47707e12bb1a57 100644 (file)
@@ -1115,6 +1115,9 @@ const ScreenShield = new Lang.Class({
     deactivate: function(animate) {
         this._hideLockScreen(animate, 0);
 
+        if (this._hasLockScreen)
+            this._clearLockScreen();
+
         if (Main.sessionMode.currentMode == 'lock-screen')
             Main.sessionMode.popMode('lock-screen');
         if (Main.sessionMode.currentMode == 'unlock-dialog')
@@ -1131,9 +1134,6 @@ const ScreenShield = new Lang.Class({
     },
 
     _completeDeactivate: function() {
-        if (this._hasLockScreen)
-            this._clearLockScreen();
-
         if (this._dialog && !this._isGreeter) {
             this._dialog.destroy();
             this._dialog = null;